Register and Memory Assignment for Non-orthogonal Architectures via Graph Coloring and MST Algorithms
نویسندگان
چکیده
Finding an optimal assignment of program variables into registers and memory is prohibitively difficult in code generation for application specific instruction-set processors (ASIPs). This is mainly because, in order to meet stringent speed and power requirements for embedded applications, ASIPs commonly employ non-orthogonal architectures which are typically characterized by irregular data paths, heterogeneous registers and multiple memory banks. As a result, existing techniques mainly developed for relatively regular, orthogonal general-purpose processors (GPPs) are obsolete for these recently emerging ASIP architectures. In this paper, we attempt to tackle this issue by exploiting conventional graph coloring and maximum spanning tree (MST) algorithms with special constraints added to handle such non-orthogonality of ASIP architectures. According to our empirical study, our algorithm finds a fairly good assignment of variables into heterogeneous registers and multi-memories while it runs extremely faster than previous work that employed exceedingly expensive algorithms to address this issue.
منابع مشابه
List-coloring of interval graphs with application to register assignment for heterogeneous register-set architectures
This article focuses on register assignment problems for heterogeneous register-set VLIW-DSP architectures. It is assumed that an instruction schedule has already been generated. The register assignment problem is equivalent to the well-known coloring of an interference graph. Typically, machine-related constraints are mapped onto the structure of the interference graph. Thereby favorable chara...
متن کاملLinear Scan Register Allocation in the Context of SSA Form and Register Constraints
Linear scan register allocation is an efficient alternative to the widely used graph coloring approach. We show how this algorithm can be applied to register-constrained architectures like the Intel x86. Our allocator relies on static single assignment form, which simplifies data flow analysis and tends to produce short live intervals. It makes use of lifetime holes and instruction weights to i...
متن کاملGreed is Good: Optimistic Algorithms for Bipartite-Graph Partial Coloring on Multicore Architectures
In parallel computing, a valid graph coloring yields a lock-free processing of the colored tasks, data points, etc., without expensive synchronization mechanisms. However, coloring is not free and the overhead can be significant. In particular, for the bipartite-graph partial coloring (BGPC) and distance-2 graph coloring (D2GC) problems, which have various use-cases within the scientific comput...
متن کاملالگوریتم ژنتیک با جهش آشوبی هوشمند و ترکیب چندنقطهای مکاشفهای برای حل مسئله رنگآمیزی گراف
Graph coloring is a way of coloring the vertices of a graph such that no two adjacent vertices have the same color. Graph coloring problem (GCP) is about finding the smallest number of colors needed to color a given graph. The smallest number of colors needed to color a graph G, is called its chromatic number. GCP is a well-known NP-hard problems and, therefore, heuristic algorithms are usually...
متن کاملDarwin’s Crayons: Genetic Algorithms for Coloring a Dynamic Graph
We studied the relative performance of genetic algorithms on coloring a dynamic graph for di↵erent graph and algorithm conditions. Graph coloring is a well-studied NP-complete problem with a wide range of applications in scheduling and assignment problems, while dynamic graphs are a natural way to model a diverse range of dynamic systems, from register allocation to mobile ad-hoc networks. Colo...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002